package tt.dz.vo.os;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Title 订单基础数据,OMS调用订单系统接口传过来
 * @author zhoutian   
 * @date 2015-11-26
 */
public class OrderBaseData {
	//用户id
	private transient String userId;
	//用户类型，0 个人用户，1 企业账户,2 支持统付的个人客户
	private transient String userType;
	//卡号
	private String cardNo;
	//卡类型 08 线上卡，06 线下卡（现金卡），05 线下卡（身份认证卡）
	private String cardType;
	//卡上的余额，如果卡类型是"06 线下卡",需要OMS在第1次调用时传递卡上的余额
	private String payerBalance;
	//来源系统,用户使用什么app下的单：104 自主app, 201乐视
	private String appId;
	//用户所属运营商编码
	private String merchantCode;
	//服务编号
	private String serviceNo;
	//资源（站或桩）所属运营商编号，有可能使用站点的运营商  pengyu 20170821
	private String serviceProviderCode;
	//该运营商提供的服务是否是成本类的服务，0：否 1：是
	private transient int isCost;
	//电站名称  对应到 stationName
	private String plantName;
	//电站Id
	private String plantId;
	//桩的编号
	private String equipmentNo;
	//辅助设备编号,枪的编号
	private String auxEquipmentNo;
	//单价，oms系统保存的原始单价
	private BigDecimal unitPrice;
	//总价，如电费
	private BigDecimal totalPrice;
	//购买数量，如预约时间、电量等
	private BigDecimal buyNum;
	//服务开始时间
	private Date startTime;
	//服务结束时间
	private Date endTime;
	//白名单用户使用合作建设资源的打折信息
	private WhiteListInfo whiteListInfo;
	//分润规则信息
	private DivideInfo divideInfo;
	//支付状态   未支付(0)， 已支付(7)
	private Integer payStatus;
	//支付类型 2统付 3企业支付 4电子钱包 5代付 6线下卡支付 7现金支付 8外部现金卡 10免费
	private Integer payType;

	private String message;

	public Integer getPayStatus() {
		return payStatus;
	}

	public void setPayStatus(Integer payStatus) {
		this.payStatus = payStatus;
	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getUserType() {
		return userType;
	}

	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	public String getCardType() {
		return cardType;
	}

	public void setCardType(String cardType) {
		this.cardType = cardType;
	}

	public String getPayerBalance() {
		return payerBalance;
	}

	public void setPayerBalance(String payerBalance) {
		this.payerBalance = payerBalance;
	}

	public String getAppId() {
		return appId;
	}

	public void setAppId(String appId) {
		this.appId = appId;
	}

	public void setUserType(String userType) {
		this.userType = userType;
	}

	public String getMerchantCode() {
		return merchantCode;
	}

	public void setMerchantCode(String merchantCode) {
		this.merchantCode = merchantCode;
	}

	public String getServiceNo() {
		return serviceNo;
	}

	public void setServiceNo(String serviceNo) {
		this.serviceNo = serviceNo;
	}

	public String getServiceProviderCode() {
		return serviceProviderCode;
	}

	public void setServiceProviderCode(String serviceProviderCode) {
		this.serviceProviderCode = serviceProviderCode;
	}

	public int getIsCost() {
		return isCost;
	}

	public void setIsCost(int isCost) {
		this.isCost = isCost;
	}

	public String getEquipmentNo() {
		return equipmentNo;
	}

	public void setEquipmentNo(String equipmentNo) {
		this.equipmentNo = equipmentNo;
	}

	public String getAuxEquipmentNo() {
		return auxEquipmentNo;
	}

	public void setAuxEquipmentNo(String auxEquipmentNo) {
		this.auxEquipmentNo = auxEquipmentNo;
	}

	public String getPlantId() {
		return plantId;
	}

	public void setPlantId(String plantId) {
		this.plantId = plantId;
	}

	public BigDecimal getUnitPrice() {
		return unitPrice;
	}

	public void setUnitPrice(BigDecimal unitPrice) {
		this.unitPrice = unitPrice;
	}

	public BigDecimal getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(BigDecimal totalPrice) {
		this.totalPrice = totalPrice;
	}

	public BigDecimal getBuyNum() {
		return buyNum;
	}

	public void setBuyNum(BigDecimal buyNum) {
		this.buyNum = buyNum;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public WhiteListInfo getWhiteListInfo() {
		return whiteListInfo;
	}

	public void setWhiteListInfo(WhiteListInfo whiteListInfo) {
		this.whiteListInfo = whiteListInfo;
	}

	public DivideInfo getDivideInfo() {
		return divideInfo;
	}

	public void setDivideInfo(DivideInfo divideInfo) {
		this.divideInfo = divideInfo;
	}

	public OrderBaseData() {}

	public Integer getPayType()
	{
		return payType;
	}

	public void setPayType(Integer payType)
	{
		this.payType = payType;
	}

	public String getMessage()
	{
		return message;
	}

	public void setMessage(String message)
	{
		this.message = message;
	}

	
	
	public String getPlantName() {
		return plantName;
	}

	public void setPlantName(String plantName) {
		this.plantName = plantName;
	}



	/**
	 * @Title 分润规则
	 * @author zhoutian   
	 * @date 2015-11-26
	 */
	public static class DivideInfo {
		//参与分润的运营商编号（以逗号分隔）
		private String merchantCodes;
		//桩的编号
		private String keyLink;
		//电站Id
		private String plantId;
		//分润比例（以逗号分隔）
		private String ratios;
		//保底金额（以逗号分隔）
		private String minAmount;

		public String getMerchantCodes() {
			return merchantCodes;
		}

		public void setMerchantCodes(String merchantCodes) {
			this.merchantCodes = merchantCodes;
		}

		public String getKeyLink() {
			return keyLink;
		}

		public void setKeyLink(String keyLink) {
			this.keyLink = keyLink;
		}

		public String getPlantId() {
			return plantId;
		}

		public void setPlantId(String plantId) {
			this.plantId = plantId;
		}

		public String getRatios() {
			return ratios;
		}

		public void setRatios(String ratios) {
			this.ratios = ratios;
		}

		public String getMinAmount() {
			return minAmount;
		}

		public void setMinAmount(String minAmount) {
			this.minAmount = minAmount;
		}

		public DivideInfo() {}
	}
	
	/**
	 * @Title: 白名单用户使用合作建设资源的打折信息
	 * @author zhoutian   
	 * @date 2015-11-26
	 */
	public static class WhiteListInfo {
		//用户id
		private String userId;
		//资源（桩）所属运营商编号
		private String serviceProviderCode;
		//折扣
		private BigDecimal discount;	

		public String getUserId() {
			return userId;
		}

		public void setUserId(String userId) {
			this.userId = userId;
		}

		public String getServiceProviderCode() {
			return serviceProviderCode;
		}

		public void setServiceProviderCode(String serviceProviderCode) {
			this.serviceProviderCode = serviceProviderCode;
		}

		public BigDecimal getDiscount() {
			return discount;
		}

		public void setDiscount(BigDecimal discount) {
			this.discount = discount;
		}

		public WhiteListInfo() {}
	}
	
	/*
	public static void main(String[] args){
		String str = "{\"bizData\":[{\"createTime\":\"2015-12-24 17:30:00\",\"isCanUse\":1,\"isValid\":1,\"isVirtual\":0,\"name\":\"充电\",\"parentNo\":\"#\",\"serviceNo\":\"100\"},{\"createTime\":\"2015-12-24 17:30:00\",\"isCanUse\":1,\"isValid\":1,\"isVirtual\":0,\"name\":\"充电服务\",\"parentNo\":\"100\",\"serviceNo\":\"100001\"},{\"createTime\":\"2015-12-24 17:30:00\",\"isCanUse\":1,\"isValid\":1,\"isVirtual\":0,\"name\":\"代收电费服务\",\"parentNo\":\"100\",\"serviceNo\":\"100002\"},{\"createTime\":\"2015-12-24 17:30:00\",\"isCanUse\":1,\"isValid\":1,\"isVirtual\":0,\"name\":\"预约\",\"parentNo\":\"#\",\"serviceNo\":\"200\"},{\"createTime\":\"2015-12-24 17:30:00\",\"isCanUse\":1,\"isValid\":1,\"isVirtual\":0,\"name\":\"充电预约服务\",\"parentNo\":\"200\",\"serviceNo\":\"200001\"},{\"createTime\":\"2015-12-24 17:30:00\",\"isCanUse\":1,\"isValid\":1,\"isVirtual\":0,\"name\":\"充电预约退款服务\",\"parentNo\":\"200\",\"serviceNo\":\"200002\"},{\"createTime\":\"2015-12-24 17:30:00\",\"isCanUse\":1,\"isValid\":1,\"isVirtual\":0,\"name\":\"租车\",\"parentNo\":\"#\",\"serviceNo\":\"300\"}],\"resultCode\":\"1020300\",\"retCode\":\"success\"}";
		RetVO retVO = (RetVO) JSON.parseObject(str, RetVO.class);
		String bizData = (String) retVO.getBizData();
		List<OrderServiceInfo> list = JSON.parseArray(bizData, OrderServiceInfo.class);
		System.out.println(list.size());
	}
	*/
}
